// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue';
// 挂载url
import now_url from './router/url'
Vue.prototype.now_url =now_url
// import Cookies from 'js-cookie'
// Vue.use(Cookies)
import VueCookies from 'vue-cookies'
Vue.use(VueCookies)
import VueBarcode from "@xkeshi/vue-barcode";
// this.$cookies.config('365d','http://localhost:8082/')
// 引入element UI
import ElementUI from 'element-ui';
import 'element-theme-chalk';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App';
// 引入路由
import router from './router';
// 引入状态管理
import store from './vuex/store';
// 引入icon
import './assets/icon/iconfont.css'
//
//引入粒子组件
import VueParticles from 'vue-particles'
Vue.use(VueParticles)
// 引入echarts
import echarts from 'echarts'
Vue.prototype.$echarts = echarts

//http://121.36.58.180:8081:80-80/
import axios from 'axios';
axios.defaults.baseURL = 'http://121.36.58.180:8081/'


const _this = this;
axios.interceptors.request.use(

  config => {
    //获取token
    let token=getCookie('token')

    //登录状态验证

    // 判断是否存在token，如果存在的话，则每个http header都加上token
    if (!config.headers.hasOwnProperty('token') && token) {
      config.headers.token=token;
    }else {
      // let pathname = location.pathname;
      // console.log('pathname为')
      // console.log(pathname)
      // this.$router.push({ path: "/login" });
    }
    return config;
  },
  error => {
    if (error.response) {
      switch (error.response.status) {
        // 返回401，清除token信息并跳转到登录页面
        case 401:
          localStorage.removeItem('token');
          router.replace({
            path: '/login'
            //登录成功后跳入浏览的当前页面
            // query: {redirect: router.currentRoute.fullPath}
          })
      }
      // 返回接口返回的错误信息
      return Promise.reject(error.response.data);
    }
    // return Promise.reject(error);
  });



  // 根路径 这里用的是接口的地址
Vue.prototype.$axios = axios

//预览大图
import VueDirectiveImagePreviewer from 'vue-directive-image-previewer'
import 'vue-directive-image-previewer/dist/assets/style.css'
Vue.use(VueDirectiveImagePreviewer)

Vue.config.productionTip = false;

// 使用element UI
Vue.use(ElementUI);
// 过滤器
import * as custom from './utils/util'
import * as cookies from "echarts";
//接受 发送cookie
import {getCookie, setCookie} from "./utils/util";

Object.keys(custom).forEach(key => {
    Vue.filter(key, custom[key])
})

// 路由拦截器
//index.js又写了一个拦截器了 这个先注释掉了
// router.beforeEach((to, from, next) => {
//     if (to.matched.length != 0) {
//         if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
//             if (Boolean(localStorage.getItem("userInfo"))) { // 通过vuex state获取当前的user是否存在
//                 next();
//             } else {
//                 next({
//                     path: '/login',
//                     query: { redirect: to.fullPath } // 将跳转的路由path作为参数，登录成功后跳转到该路由
//                 })
//             }
//         } else {
//             if (Boolean(localStorage.getItem("userInfo"))) { // 判断是否登录
//                 if (to.path != "/" && to.path != "/login") { //判断是否要跳到登录界面
//                     next();
//                 } else {
//                     /**
//                      * 防刷新，如果登录，修改路由跳转到登录页面，修改路由为登录后的首页
//                      // */
//                     //登录自动转入页面
//                     next({
//                         path: '/add/molecularDesign'
//                     })
//                 }
//             } else {
//                 next();
//             }
//         }
//     } else {
//         next({
//             path: '/login',
//             query: { redirect: to.fullPath } // 将跳转的路由path作为参数，登录成功后跳转到该路由
//         })
//     }
// })

/* eslint-disable no-new */
new Vue({
    el: '#app',
    router,
    store, //使用store vuex状态管理
    components: { App },
    template: '<App/>',
    data: {
        // 空的实例放到根组件下，所有的子组件都能调用
        Bus: new Vue()
    }

})

